import QQMapWX from "@/qqmap-wx-jssdk.min";
let accessKey = "2UNBZ-67L3Q-M7S55-2ZWK4-NFJM6-6QF3F";
/**
 * @typedef GeoLocation
 * @property {number} latitude 纬度
 * @property {number} longitude 经度
 */
/**
 * @typedef ReverseGeocoderOption
 * @property {GeoLocation} location 经纬度
 * @property {1 | 2 | 3 | 4 | 5 | 6} coord_type 坐标类型，1:GPS 3:百度 5:腾讯、高德
 */
/**
 * @typedef AddressComponent
 * @property {string} city 城市
 * @property {string} district 区
 * @property {string} nation 国家
 * @property {string} province 省
 * @property {string} street 路
 * @property {string} street_number 路址（几号几栋等）
 */
/**
 * @typedef ReverseGeocoderResult
 * @property {string} address 省到路
 * @property {AddressComponent} address_component 地区信息分量
 */

/**
 * @typedef ReverseGeocoderRes
 * @property {ReverseGeocoderResult} result 结果数据
 */
/**
 * 封装腾讯地理服务的 api
 * @param {ReverseGeocoderOption} option 配置选项
 * @returns {Promise<ReverseGeocoderRes>}
 * @throws Error
 */
export async function reverseGeocoder(option) {
  return new Promise((resolve, reject) => {
    let qqMapWX = new QQMapWX({
      key: accessKey,
    });
    qqMapWX.reverseGeocoder({
      ...option,
      success(res) {
        return resolve(res);
      },
      fail(error) {
        return reject(error);
      },
    });
  });
}
